// column_major.c
#include <stdio.h>
#include <sys/time.h>

#define SIZE 1024

double get_time() {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return tv.tv_sec + tv.tv_usec * 1e-6;
}

int main() {
    static int arr[SIZE][SIZE];
    double start = get_time();

    // 外层循环列，内层循环行（列优先）
    for (int j = 0; j < SIZE; j++) {
        for (int i = 0; i < SIZE; i++) {
            arr[i][j] = i * SIZE + j;  // 跨行跳跃访问[4](@ref)
        }
    }

    printf("Column-major time: %.6f sec\n", get_time() - start);
    return 0;
}
